package com.nineclock.system.controller;

import com.nineclock.common.entity.Result;
import com.nineclock.system.dto.SysCompanyContactConfigDTO;
import com.nineclock.system.pojo.SysCompanyContactConfig;
import com.nineclock.system.service.SysCompanyContactConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/companyContact")
@Api(value = "企业通讯录字段配置管理", tags = "企业通讯录", description = "企业通讯录字段配置管理")
public class SysCompanyContactConfigController {

    @Autowired(required = false)
    private SysCompanyContactConfigService configService;


    /**
     * 接口名称：企业通讯录: 添加字段
     * 接口路径：POST/sys/companyContact/config
     */
    @PostMapping("/config")
    @ApiOperation("添加字段")
    public Result addSysCompanyContactConfig(@RequestBody SysCompanyContactConfigDTO configDTO){
        configService.addSysCompanyContactConfig(configDTO);
        return Result.success();
    }

    /**
     * 接口名称：企业通讯录: 查询并初始化
     * 接口路径：GET/sys/companyContact/config
     */
    @GetMapping("/config")
    @ApiOperation(value = "企业通讯录查询并初始化")
    public List<SysCompanyContactConfigDTO> queryCompnayContactConfig(){
        return configService.queryCompnayContactConfig();
    }


    /**
     * 接口名称：企业通讯录: 修改状态
     * 接口路径：PUT/sys/companyContact/config/{id}/{status}
     */
    @PutMapping("/config/{id}/{status}")
    @ApiOperation(value = "修改通讯录字段状态")
    public Result updateCompanyContactConfigStatus(@PathVariable Long id,@PathVariable Short status){
        configService.updateStatus(id , status);
        return Result.success();
    }

    /**
     * 接口名称：企业通讯录: 删除
     * 接口路径：DELETE/sys/companyContact/config/{id}
     */
    @DeleteMapping("config/{id}")
    @ApiOperation(value = "删除通讯录字段")
    public Result deleteCompanyContactConfigStatus(@PathVariable Long id){
        configService.deleteCompanyContactConfigStatus(id);
        return Result.success();
    }
}
